* feat(core): allow swapping the assets implemenetation * refactor(core): add setup() to the Assets trait * code review