Oo implementation