Updated code to use generics, better performance
Added and updated changelog
Merging