major improvements for enumeration, still returns extras though