refactor interface and selections