initial commit
main functionality in place