UI components factories

sm & di refactoring