refactored to allow for both PkBackend and PkBackendJob