update the uri after a InvalidURIException
refactored getOldNavigationState to getSourceNavigationState and getNewNavigationState to getTargetNavigationState
throw InvalidURIException if the parameter conversion fails
fix optionals in buildFragment()