change param names
add new api
first commit
separate algorithms to different files