at least, the `if (this.initialized) { return; }` should be better done here than in each place that you call `init` :)