Fully implemented Punching