Remove dependence on Options and unify API