refactor: more delegation to backend