refactored to reduce code duplication
Merge branch 'common-base-backend-impl'