make use of the awesomeness of oo