free-time refactor