improve architecture of project