initial commit, will modify to reflect current design