added generic.shared