release 1

pseudocode
release 2

initial code