added the foldable type class and somre more types