implemented most applicable type class instances to the option type