Added generics just for the fun of it.