Not sure @:generic is a great idea here... seems to require casts in a couple more places and then I still get some runtime errror... :s