common code between future and scheduled task refactor

pulled up common future and scheduled task code into Obligation
added specs for new obligation methods