I previously wrote about the design decisions for a keychain library I was making. Towards the end of the post I was considering separating out the class that performs the requests from the class that constitutes the requests themselves—I called them Locksmith and LocksmithRequest respectively. This is the approach I stuck with, and I think it’s working out well.