initial commit of code & tests