First working commit with tests