public static IUser Read(this NetworkReader reader) { //We first need to figure out what account type we are dealing with UserProvider provider = (UserProvider)reader.ReadByte(); if (provider == UserProvider.Offline) { return(OfflineUser.Create(reader)); } return(SteamUser.Create(reader)); }