added inheritance and transaction include