semi functioning class