First commit, some tests and working code