Make the api more consistent and use MultiMap