refactoring funtimes