refactored assets, need tests