Better API, actually works well