add Bag implementation