object oriented approach