Note that this does not support fallback yet, it should do before this PR is done.