get some OO abstraction on.