implemented class