pragma warning (disable:4227)