prototype patterns