pretty printing
add documentation