changed to object-based shimming mechanism

This simplifies the shimming mechanism pretty substantially. Also I added .unpipe() to the shimmed methods.