Removed some useless generics and added some useful thing