break down schedule somewhat,
refactoring,
add tests