separation of process from UI