implements class abstract object and objects