re-did the generic types for the server