simpler provider interface