This is homework 2 for geekhub. Interface and abstarct class