logic and ui