Refactor 1b

made abstract classes abstract.