First commit. Adding basic clases (not finished) and some tests (not finished).