more future refactoring