Refactoring

Refactoring
Completed option merge