More object oriented approach