improve performance
define options provider interface