* Before messing with generics
 * Not good with generics, but at least compiles and works