add compress function