implemented some more type class instances for option