* first day of week
* cache
* slight refactoring