refactor, time is now consistently the first argument