compress interface implementation 1st
compress interface implementation 2st