Demystifying Generic Classes for Improved Code Maintainability