refactooooored ui