base for oo classes too