add documentation
add design