More timer refactoring, should be faster now