more object oriented