Adding first files, the base functionality, tests and some comments