Framework Design Guidelines by Brad Abrams