making a bit more OO