Linting errors in core

Due to the fake virtual function
Change to the init API so that init becomes a self-invoking function that fires when it is required