OO aproach
refactor