+ more logic and ui