Simplified implementation of IfDefinedOtherwise
Replaced yet another IMap by HashMap
Fixes,renamings,cleanups