dropdown: refactoring