I guess this method should take a map to make it more explicit.