added new O-O code