refactor binding