`obj` should debatably just use generics, rather than `Object`, since `Object` is disgusting.