first commit, basic functionality working