cleanup
add exceptions