several improvements, rewind on the puckering inclusion so I can merge with master. Puckering will get its own branch