add bag implementationj