refactor options building into configurable service