added conway OOP