Refactor: Move timesheet logic to TimeSheet