further refactored ==> allowing reference on left hand side