first commit, really a few feature are working