refactor OptionsParser
introduce generic entity = Builder