inital code commit, still very rough