implement basically class