refactor fallback mechanism