major refactoring of assets and unit tests