implement gama.puppet