I'm not sure whether users must call this function if they use the new constructors  or can choose to call it or not. if it's must, I'd call the function inside the constructors.