refactor conway a bit