Needs @:generic