refactor bank holiday generation