Less functional more OO