refactor to support different size containers, add packery example