Modified project structure. Separated to several packages.