You don't have to line up all the argument types. Also, make drawRect: empty again.  Subclassers need to be able to override that and fill it with whatever they want.