implement first functional GUI with mvp and ioc