abstract vs concrete class fix