Make puppet keyboard controllable, refactor puppet part geometry handling, small stuff all around