clean up
add documentation