added packing algorithm interface