Switch to using factories instead of the other convoluted method
Merge branch 'compression2'