Simplified the example, throwing out generics