refactors structure, adds dependecies, adds support for terrain view