refactor facade