TypeSafety: Change Exception to IllegalArgumentException. Remove ensure<Type> methods