initial prototype of option refactoring