Cleaned up generics

Updated setters to include the appropriate type variables in the return type.