Start assignment 3, abstract contracts and class structure