#29 ocl now implements template method patters