Adding first version and a few tests