Asset plugin refactor