added option base class
minor changes