for issue #6 : supports complex suspendable constructors which maybe
invokes another constructor of the same class