class abstract