public prototype