several compressing methods