iOS-tut Assn3: more abstraction