made class abstract