Extended generics to functions
Minor changes
Generic Interfaces
Revert "Generic Interfaces"

This reverts commit 85b4ce0ae4a97c5b7a75594c4e54ed70ea180b07.
Redesigned generics