Stable (probably) version, but works for non-generics only