Added a 'asset listener' system, also improved 'asset'