some basic object oriented practice