add tasks
add bad input tests
add tasks
add precondition helpers