A novice attempt to create a custom promise deferred object.