added puppet mode