initial commit, implemented 3 algorithms