added GeneralExtensions.cs