implementing option