I don't really understand the advantage of having split initialization, i.e. some things done in the constructor function and some things done in the init() function. It just seems like you are begging to end up with an partially initialized object somewhere.