Simplified and removed lots of generics