finish the future framework code, error handling and unit test is outstanding