lets use explicit parameters rather than a map