Created the abstract and actual classes to be used