initial commit, basic program structure