Correct handling of optional -> mandatory.
Though the solution is not nice and needs refactoring.