Basic structure and some tests implemented