configurable office hours, some small refactoring