added new Bag data struct using the Adapter design pattern