refactor fallback mechanism

this is still work in progress