The explicit method call is needed for the expected hash structure, the constructor method always returns the new object and this code is still not full OO.