Support for multiple types per argument
Replaced for with map