main class refactor
Add options type.