genericized the options