description updated
functions fixed
add tests