new logic and ui