improve genericity