firs commit, just a functional skeleton