[simplegeneric] initial import