check that function return types match
check for unreachable code (after return, break, continue)
check for unused arguments
fix unreachable check bug
add additional tests