refactor implementation of AssetsController with asset