separated model, input and controller processes.