initial commit
complete refactor