more refactor work on Future