diff --git a/src/Samples/Todo.Core/Todo.Core.csproj b/src/Samples/Todo.Core/Todo.Core.csproj
index cc758c85..046edd76 100644
--- a/src/Samples/Todo.Core/Todo.Core.csproj
+++ b/src/Samples/Todo.Core/Todo.Core.csproj
@@ -14,6 +14,7 @@
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <RestorePackages>true</RestorePackages>
     <FodyPath>..\..\packages\Fody.1.13.12</FodyPath>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
     <DebugSymbols>true</DebugSymbols>
diff --git a/src/Samples/Wpf/WpfTodo.UITests/WpfTodo.UITests.csproj b/src/Samples/Wpf/WpfTodo.UITests/WpfTodo.UITests.csproj
index 6993be07..af6b9473 100644
--- a/src/Samples/Wpf/WpfTodo.UITests/WpfTodo.UITests.csproj
+++ b/src/Samples/Wpf/WpfTodo.UITests/WpfTodo.UITests.csproj
@@ -13,6 +13,7 @@
     <FileAlignment>512</FileAlignment>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\..\</SolutionDir>
     <RestorePackages>true</RestorePackages>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
     <DebugSymbols>true</DebugSymbols>
diff --git a/src/Samples/Wpf/WpfTodo/Properties/Resources.Designer.cs b/src/Samples/Wpf/WpfTodo/Properties/Resources.Designer.cs
index 4f345067..d726c331 100644
--- a/src/Samples/Wpf/WpfTodo/Properties/Resources.Designer.cs
+++ b/src/Samples/Wpf/WpfTodo/Properties/Resources.Designer.cs
@@ -1,17 +1,17 @@
 ﻿//------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.18010
+//     Runtime Version:4.0.30319.34003
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
 // </auto-generated>
 //------------------------------------------------------------------------------
 
-namespace WpfTodo.Properties
-{
-
-
+namespace WpfTodo.Properties {
+    using System;
+    
+    
     /// <summary>
     ///   A strongly-typed resource class, for looking up localized strings, etc.
     /// </summary>
@@ -22,48 +22,40 @@ namespace WpfTodo.Properties
     [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources
-    {
-
+    internal class Resources {
+        
         private static global::System.Resources.ResourceManager resourceMan;
-
+        
         private static global::System.Globalization.CultureInfo resourceCulture;
-
+        
         [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Resources()
-        {
+        internal Resources() {
         }
-
+        
         /// <summary>
         ///   Returns the cached ResourceManager instance used by this class.
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager
-        {
-            get
-            {
-                if ((resourceMan == null))
-                {
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
                     global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WpfTodo.Properties.Resources", typeof(Resources).Assembly);
                     resourceMan = temp;
                 }
                 return resourceMan;
             }
         }
-
+        
         /// <summary>
         ///   Overrides the current thread's CurrentUICulture property for all
         ///   resource lookups using this strongly typed resource class.
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture
-        {
-            get
-            {
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
                 return resourceCulture;
             }
-            set
-            {
+            set {
                 resourceCulture = value;
             }
         }
diff --git a/src/Samples/Wpf/WpfTodo/Properties/Settings.Designer.cs b/src/Samples/Wpf/WpfTodo/Properties/Settings.Designer.cs
index 995c3139..e8b85081 100644
--- a/src/Samples/Wpf/WpfTodo/Properties/Settings.Designer.cs
+++ b/src/Samples/Wpf/WpfTodo/Properties/Settings.Designer.cs
@@ -1,28 +1,24 @@
 ﻿//------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.18010
+//     Runtime Version:4.0.30319.34003
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
 // </auto-generated>
 //------------------------------------------------------------------------------
 
-namespace WpfTodo.Properties
-{
-
-
+namespace WpfTodo.Properties {
+    
+    
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
-    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
-    {
-
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
         private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
-        public static Settings Default
-        {
-            get
-            {
+        
+        public static Settings Default {
+            get {
                 return defaultInstance;
             }
         }
diff --git a/src/Samples/Wpf/WpfTodo/WpfTodo.csproj b/src/Samples/Wpf/WpfTodo/WpfTodo.csproj
index 4ae58265..0ad27786 100644
--- a/src/Samples/Wpf/WpfTodo/WpfTodo.csproj
+++ b/src/Samples/Wpf/WpfTodo/WpfTodo.csproj
@@ -16,6 +16,7 @@
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\..\</SolutionDir>
     <RestorePackages>true</RestorePackages>
     <FodyPath>..\..\..\packages\Fody.1.13.12</FodyPath>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
     <DebugSymbols>true</DebugSymbols>
diff --git a/src/Samples/Wpf/WpfTodo/app.config b/src/Samples/Wpf/WpfTodo/app.config
index 0a1d6288..02edb219 100644
--- a/src/Samples/Wpf/WpfTodo/app.config
+++ b/src/Samples/Wpf/WpfTodo/app.config
@@ -1,15 +1,15 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
-        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.5.11.0" newVersion="2.5.11.0" />
+        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-2.5.11.0" newVersion="2.5.11.0"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.5.11.0" newVersion="2.5.11.0" />
+        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-2.5.11.0" newVersion="2.5.11.0"/>
       </dependentAssembly>
     </assemblyBinding>
   </runtime>
-</configuration>
\ No newline at end of file
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
diff --git a/src/TestStack.White.Reporting/App.config b/src/TestStack.White.Reporting/App.config
index 78a9897c..54e99795 100644
--- a/src/TestStack.White.Reporting/App.config
+++ b/src/TestStack.White.Reporting/App.config
@@ -12,4 +12,4 @@
       <add key="PublishTestReports" value="false"/>
     </Reporting>
   </White>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
+<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
diff --git a/src/TestStack.White.Reporting/TestStack.White.Reporting.csproj b/src/TestStack.White.Reporting/TestStack.White.Reporting.csproj
index 12975d6a..ba4d996e 100644
--- a/src/TestStack.White.Reporting/TestStack.White.Reporting.csproj
+++ b/src/TestStack.White.Reporting/TestStack.White.Reporting.csproj
@@ -17,7 +17,7 @@
     <OldToolsVersion>3.5</OldToolsVersion>
     <UpgradeBackupLocation>
     </UpgradeBackupLocation>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <SignAssembly>true</SignAssembly>
     <AssemblyOriginatorKeyFile>white.snk</AssemblyOriginatorKeyFile>
     <PublishUrl>publish\</PublishUrl>
@@ -62,7 +62,7 @@
   <ItemGroup>
     <Reference Include="Castle.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll</HintPath>
+      <HintPath>..\packages\Castle.Core.3.2.0\lib\net35\Castle.Core.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core">
diff --git a/src/TestStack.White.Reporting/packages.config b/src/TestStack.White.Reporting/packages.config
index 01442097..efe56857 100644
--- a/src/TestStack.White.Reporting/packages.config
+++ b/src/TestStack.White.Reporting/packages.config
@@ -1,4 +1,4 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Castle.Core" version="3.2.0" targetFramework="net40" />
+  <package id="Castle.Core" version="3.2.0" targetFramework="net35" />
 </packages>
\ No newline at end of file
diff --git a/src/TestStack.White.ScreenObjects.UITests/TestStack.White.ScreenObjects.UITests.csproj b/src/TestStack.White.ScreenObjects.UITests/TestStack.White.ScreenObjects.UITests.csproj
index 3c18247b..cefeb86d 100644
--- a/src/TestStack.White.ScreenObjects.UITests/TestStack.White.ScreenObjects.UITests.csproj
+++ b/src/TestStack.White.ScreenObjects.UITests/TestStack.White.ScreenObjects.UITests.csproj
@@ -10,7 +10,7 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>TestStack.White.ScreenObjects.UITests</RootNamespace>
     <AssemblyName>TestStack.White.ScreenObjects.UITests</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <FileUpgradeFlags>
     </FileUpgradeFlags>
@@ -57,11 +57,11 @@
   <ItemGroup>
     <Reference Include="Castle.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll</HintPath>
+      <HintPath>..\packages\Castle.Core.3.2.0\lib\net35\Castle.Core.dll</HintPath>
     </Reference>
     <Reference Include="NSubstitute, Version=1.6.1.0, Culture=neutral, PublicKeyToken=92dd2e9066daa5ca, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\NSubstitute.1.6.1.0\lib\NET40\NSubstitute.dll</HintPath>
+      <HintPath>..\packages\NSubstitute.1.6.1.0\lib\NET35\NSubstitute.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core">
diff --git a/src/TestStack.White.ScreenObjects.UITests/packages.config b/src/TestStack.White.ScreenObjects.UITests/packages.config
index deb6d193..2db8b654 100644
--- a/src/TestStack.White.ScreenObjects.UITests/packages.config
+++ b/src/TestStack.White.ScreenObjects.UITests/packages.config
@@ -1,6 +1,6 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Castle.Core" version="3.2.0" targetFramework="net40" />
-  <package id="NSubstitute" version="1.6.1.0" targetFramework="net40" />
-  <package id="xunit" version="1.9.1" targetFramework="net40" />
+  <package id="Castle.Core" version="3.2.0" targetFramework="net35" />
+  <package id="NSubstitute" version="1.6.1.0" targetFramework="net35" />
+  <package id="xunit" version="1.9.1" targetFramework="net35" />
 </packages>
\ No newline at end of file
diff --git a/src/TestStack.White.ScreenObjects/App.config b/src/TestStack.White.ScreenObjects/App.config
index cea38cf9..8ec45556 100644
--- a/src/TestStack.White.ScreenObjects/App.config
+++ b/src/TestStack.White.ScreenObjects/App.config
@@ -22,4 +22,4 @@
       <add key="LogCoreActions" value="false"/>
     </Core>
   </White>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
+<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
diff --git a/src/TestStack.White.ScreenObjects/TestStack.White.ScreenObjects.csproj b/src/TestStack.White.ScreenObjects/TestStack.White.ScreenObjects.csproj
index 6640ebfa..81a4725b 100644
--- a/src/TestStack.White.ScreenObjects/TestStack.White.ScreenObjects.csproj
+++ b/src/TestStack.White.ScreenObjects/TestStack.White.ScreenObjects.csproj
@@ -15,7 +15,7 @@
     <OldToolsVersion>3.5</OldToolsVersion>
     <UpgradeBackupLocation>
     </UpgradeBackupLocation>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <SignAssembly>true</SignAssembly>
     <AssemblyOriginatorKeyFile>white.snk</AssemblyOriginatorKeyFile>
     <PublishUrl>publish\</PublishUrl>
@@ -60,7 +60,7 @@
   <ItemGroup>
     <Reference Include="Castle.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll</HintPath>
+      <HintPath>..\packages\Castle.Core.3.2.0\lib\net35\Castle.Core.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core">
diff --git a/src/TestStack.White.ScreenObjects/packages.config b/src/TestStack.White.ScreenObjects/packages.config
index 01442097..efe56857 100644
--- a/src/TestStack.White.ScreenObjects/packages.config
+++ b/src/TestStack.White.ScreenObjects/packages.config
@@ -1,4 +1,4 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Castle.Core" version="3.2.0" targetFramework="net40" />
+  <package id="Castle.Core" version="3.2.0" targetFramework="net35" />
 </packages>
\ No newline at end of file
diff --git a/src/TestStack.White.UITests/App.config b/src/TestStack.White.UITests/App.config
index 74ff35fc..060ab87d 100644
--- a/src/TestStack.White.UITests/App.config
+++ b/src/TestStack.White.UITests/App.config
@@ -11,4 +11,4 @@
       <add key="BusyTimeout" value="10000"/>
     </Core>
   </White>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
+<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
diff --git a/src/TestStack.White.UITests/TestStack.White.UITests.csproj b/src/TestStack.White.UITests/TestStack.White.UITests.csproj
index e331ed45..8f55cc9f 100644
--- a/src/TestStack.White.UITests/TestStack.White.UITests.csproj
+++ b/src/TestStack.White.UITests/TestStack.White.UITests.csproj
@@ -9,10 +9,11 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>TestStack.White.UITests</RootNamespace>
     <AssemblyName>TestStack.White.UITests</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
     <RestorePackages>true</RestorePackages>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup>
     <SignAssembly>true</SignAssembly>
@@ -41,7 +42,7 @@
   <ItemGroup>
     <Reference Include="Castle.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll</HintPath>
+      <HintPath>..\packages\Castle.Core.3.2.0\lib\net35\Castle.Core.dll</HintPath>
     </Reference>
     <Reference Include="PresentationCore" />
     <Reference Include="System" />
diff --git a/src/TestStack.White.UITests/packages.config b/src/TestStack.White.UITests/packages.config
index 22748951..59c55b0e 100644
--- a/src/TestStack.White.UITests/packages.config
+++ b/src/TestStack.White.UITests/packages.config
@@ -1,5 +1,5 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Castle.Core" version="3.2.0" targetFramework="net40" />
-  <package id="xunit" version="1.9.1" targetFramework="net40" />
+  <package id="Castle.Core" version="3.2.0" targetFramework="net35" />
+  <package id="xunit" version="1.9.1" targetFramework="net35" />
 </packages>
\ No newline at end of file
diff --git a/src/TestStack.White.UnitTests/App.config b/src/TestStack.White.UnitTests/App.config
index 248b3c96..7535664c 100644
--- a/src/TestStack.White.UnitTests/App.config
+++ b/src/TestStack.White.UnitTests/App.config
@@ -34,4 +34,4 @@
       </dependentAssembly>
     </assemblyBinding>
   </runtime>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
+<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
diff --git a/src/TestStack.White.UnitTests/CoreProjectTest.cs b/src/TestStack.White.UnitTests/CoreProjectTest.cs
index a30a5532..c577e62d 100644
--- a/src/TestStack.White.UnitTests/CoreProjectTest.cs
+++ b/src/TestStack.White.UnitTests/CoreProjectTest.cs
@@ -79,7 +79,7 @@ public void AllUIItemsHaveDefaultConstructor()
             AllSubsclassesHaveEmptyConstructor(collection, typeof(SearchCriteria));
             AllSubsclassesHaveEmptyConstructor(collection, typeof(AutomationElementProperty));
             if (collection.Any())
-                throw new Exception(string.Join("\r\n", collection));
+                throw new Exception(string.Join("\r\n", collection.ToArray()));
         }
 
         private void AllSubsclassesHaveEmptyConstructor(List<string> collection, Type type)
diff --git a/src/TestStack.White.UnitTests/TestStack.White.UnitTests.csproj b/src/TestStack.White.UnitTests/TestStack.White.UnitTests.csproj
index 6d20a465..9aeadcd7 100644
--- a/src/TestStack.White.UnitTests/TestStack.White.UnitTests.csproj
+++ b/src/TestStack.White.UnitTests/TestStack.White.UnitTests.csproj
@@ -10,7 +10,7 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>TestStack.White.UnitTests</RootNamespace>
     <AssemblyName>TestStack.White.UnitTests</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <StartupObject>
     </StartupObject>
@@ -61,11 +61,11 @@
   <ItemGroup>
     <Reference Include="Castle.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll</HintPath>
+      <HintPath>..\packages\Castle.Core.3.2.0\lib\net35\Castle.Core.dll</HintPath>
     </Reference>
     <Reference Include="NSubstitute, Version=1.6.1.0, Culture=neutral, PublicKeyToken=92dd2e9066daa5ca, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\NSubstitute.1.6.1.0\lib\NET40\NSubstitute.dll</HintPath>
+      <HintPath>..\packages\NSubstitute.1.6.1.0\lib\NET35\NSubstitute.dll</HintPath>
     </Reference>
     <Reference Include="PresentationFramework">
       <RequiredTargetFramework>3.0</RequiredTargetFramework>
diff --git a/src/TestStack.White.UnitTests/packages.config b/src/TestStack.White.UnitTests/packages.config
index deb6d193..2db8b654 100644
--- a/src/TestStack.White.UnitTests/packages.config
+++ b/src/TestStack.White.UnitTests/packages.config
@@ -1,6 +1,6 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Castle.Core" version="3.2.0" targetFramework="net40" />
-  <package id="NSubstitute" version="1.6.1.0" targetFramework="net40" />
-  <package id="xunit" version="1.9.1" targetFramework="net40" />
+  <package id="Castle.Core" version="3.2.0" targetFramework="net35" />
+  <package id="NSubstitute" version="1.6.1.0" targetFramework="net35" />
+  <package id="xunit" version="1.9.1" targetFramework="net35" />
 </packages>
\ No newline at end of file
diff --git a/src/TestStack.White.WebBrowser.UITests/TestStack.White.WebBrowser.UITests.csproj b/src/TestStack.White.WebBrowser.UITests/TestStack.White.WebBrowser.UITests.csproj
index 4c2f05c2..686d1fe5 100644
--- a/src/TestStack.White.WebBrowser.UITests/TestStack.White.WebBrowser.UITests.csproj
+++ b/src/TestStack.White.WebBrowser.UITests/TestStack.White.WebBrowser.UITests.csproj
@@ -10,7 +10,7 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>TestStack.White.WebBrowser.UITests</RootNamespace>
     <AssemblyName>TestStack.White.WebBrowser.UITests</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <SignAssembly>true</SignAssembly>
     <AssemblyOriginatorKeyFile>
@@ -60,7 +60,7 @@
   <ItemGroup>
     <Reference Include="Castle.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll</HintPath>
+      <HintPath>..\packages\Castle.Core.3.2.0\lib\net35\Castle.Core.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core">
diff --git a/src/TestStack.White.WebBrowser.UITests/packages.config b/src/TestStack.White.WebBrowser.UITests/packages.config
index 22748951..59c55b0e 100644
--- a/src/TestStack.White.WebBrowser.UITests/packages.config
+++ b/src/TestStack.White.WebBrowser.UITests/packages.config
@@ -1,5 +1,5 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Castle.Core" version="3.2.0" targetFramework="net40" />
-  <package id="xunit" version="1.9.1" targetFramework="net40" />
+  <package id="Castle.Core" version="3.2.0" targetFramework="net35" />
+  <package id="xunit" version="1.9.1" targetFramework="net35" />
 </packages>
\ No newline at end of file
diff --git a/src/TestStack.White.WebBrowser.UnitTests/TestStack.White.WebBrowser.UnitTests.csproj b/src/TestStack.White.WebBrowser.UnitTests/TestStack.White.WebBrowser.UnitTests.csproj
index a7c4161d..11ab59e8 100644
--- a/src/TestStack.White.WebBrowser.UnitTests/TestStack.White.WebBrowser.UnitTests.csproj
+++ b/src/TestStack.White.WebBrowser.UnitTests/TestStack.White.WebBrowser.UnitTests.csproj
@@ -10,7 +10,7 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>TestStack.White.WebBrowser.UnitTests</RootNamespace>
     <AssemblyName>TestStack.White.WebBrowser.UnitTests</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <FileUpgradeFlags>
     </FileUpgradeFlags>
diff --git a/src/TestStack.White.WebBrowser/TestStack.White.WebBrowser.csproj b/src/TestStack.White.WebBrowser/TestStack.White.WebBrowser.csproj
index a67f5a08..32397c7d 100644
--- a/src/TestStack.White.WebBrowser/TestStack.White.WebBrowser.csproj
+++ b/src/TestStack.White.WebBrowser/TestStack.White.WebBrowser.csproj
@@ -10,7 +10,7 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>TestStack.White.WebBrowser</RootNamespace>
     <AssemblyName>TestStack.White.WebBrowser</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <SignAssembly>true</SignAssembly>
     <AssemblyOriginatorKeyFile>white.snk</AssemblyOriginatorKeyFile>
@@ -59,7 +59,7 @@
   <ItemGroup>
     <Reference Include="Castle.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll</HintPath>
+      <HintPath>..\packages\Castle.Core.3.2.0\lib\net35\Castle.Core.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core">
diff --git a/src/TestStack.White.WebBrowser/packages.config b/src/TestStack.White.WebBrowser/packages.config
index 01442097..efe56857 100644
--- a/src/TestStack.White.WebBrowser/packages.config
+++ b/src/TestStack.White.WebBrowser/packages.config
@@ -1,4 +1,4 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Castle.Core" version="3.2.0" targetFramework="net40" />
+  <package id="Castle.Core" version="3.2.0" targetFramework="net35" />
 </packages>
\ No newline at end of file
diff --git a/src/TestStack.White/App.config b/src/TestStack.White/App.config
index b4188fa0..34ef7b76 100644
--- a/src/TestStack.White/App.config
+++ b/src/TestStack.White/App.config
@@ -27,4 +27,4 @@
     <UIItemId>
     </UIItemId>
   </White>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
+<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
diff --git a/src/TestStack.White/Mappings/ControlDictionary.cs b/src/TestStack.White/Mappings/ControlDictionary.cs
index 856c2a31..5a95e97a 100644
--- a/src/TestStack.White/Mappings/ControlDictionary.cs
+++ b/src/TestStack.White/Mappings/ControlDictionary.cs
@@ -154,7 +154,7 @@ public virtual Type GetTestControlType(string className, string name, ControlTyp
                 throw new ControlDictionaryException(string.Format(
                    "Multiple TestControls found for ControlType={0} and FrameworkId:{1} - {2}",
                    controlType.LocalizedControlType, frameWorkId,
-                   string.Join(", ", dictionaryItems.Select(d => d.TestControlType == null ? "null" : d.TestControlType.FullName))));
+                   string.Join(", ", dictionaryItems.Select(d => d.TestControlType == null ? "null" : d.TestControlType.FullName).ToArray())));
 
             }
             return dictionaryItems.Single().TestControlType;
@@ -177,8 +177,8 @@ public virtual bool IsPrimaryControl(ControlType controlType, string className,
             return items.Exists(controlDictionaryItem =>
             {
                 bool isPrimaryMatching = controlDictionaryItem.IsPrimary && ControlTypeMatches(controlType, controlDictionaryItem) && !controlDictionaryItem.IsIdentifiedByClassName && !controlDictionaryItem.IsIdentifiedByName;
-                bool identifiedByClassNameMatches = !string.IsNullOrWhiteSpace(className) && className.Contains(controlDictionaryItem.ClassName) && controlDictionaryItem.IsIdentifiedByClassName;
-                bool identifiedByNameMatches = !string.IsNullOrWhiteSpace(name) && controlDictionaryItem.TestControlType != null && name.Equals(controlDictionaryItem.TestControlType.Name) && controlDictionaryItem.IsIdentifiedByName;
+                bool identifiedByClassNameMatches = !string.IsNullOrEmpty(className) && className.Contains(controlDictionaryItem.ClassName) && controlDictionaryItem.IsIdentifiedByClassName;
+                bool identifiedByNameMatches = !string.IsNullOrEmpty(name) && controlDictionaryItem.TestControlType != null && name.Equals(controlDictionaryItem.TestControlType.Name) && controlDictionaryItem.IsIdentifiedByName;
                 return isPrimaryMatching || identifiedByClassNameMatches || identifiedByNameMatches;
             });
         }
diff --git a/src/TestStack.White/TestStack.White.csproj b/src/TestStack.White/TestStack.White.csproj
index d001a9a5..47e8adb6 100644
--- a/src/TestStack.White/TestStack.White.csproj
+++ b/src/TestStack.White/TestStack.White.csproj
@@ -16,7 +16,7 @@
     <UpgradeBackupLocation>
     </UpgradeBackupLocation>
     <IsWebBootstrapper>true</IsWebBootstrapper>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <SignAssembly>true</SignAssembly>
     <AssemblyOriginatorKeyFile>white.snk</AssemblyOriginatorKeyFile>
     <PublishUrl>http://localhost/Core/</PublishUrl>
@@ -61,7 +61,7 @@
   <ItemGroup>
     <Reference Include="Castle.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll</HintPath>
+      <HintPath>..\packages\Castle.Core.3.2.0\lib\net35\Castle.Core.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.configuration" />
diff --git a/src/TestStack.White/UIItems/Finders/OrSearchCondition.cs b/src/TestStack.White/UIItems/Finders/OrSearchCondition.cs
index 049b9bcd..e19ee97f 100644
--- a/src/TestStack.White/UIItems/Finders/OrSearchCondition.cs
+++ b/src/TestStack.White/UIItems/Finders/OrSearchCondition.cs
@@ -29,7 +29,7 @@ public override Condition AutomationCondition
 
         public override string ToString()
         {
-            return string.Format("({0})", string.Join(" or ", simpleSearchConditions.Select(c => c.ToString())));
+            return string.Format("({0})", string.Join(" or ", simpleSearchConditions.Select(c => c.ToString()).ToArray()));
         }
 
         internal override string ToString(string operation)
diff --git a/src/TestStack.White/UIItems/WindowItems/Window.cs b/src/TestStack.White/UIItems/WindowItems/Window.cs
index b546fc59..3f8dfdfb 100644
--- a/src/TestStack.White/UIItems/WindowItems/Window.cs
+++ b/src/TestStack.White/UIItems/WindowItems/Window.cs
@@ -4,7 +4,6 @@
 using System.Linq;
 using System.Runtime.InteropServices;
 using System.Threading;
-using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Automation;
 using TestStack.White.AutomationElementSearch;
@@ -39,7 +38,7 @@ public abstract class Window : UIItemContainer, IDisposable
         /// 
         /// This make sure the window is open for a minimum amount of time
         /// </summary>
-        private readonly Task minOpenTime;
+        private readonly ManualResetEvent minOpenTime;
 
         public delegate bool WaitTillDelegate();
 
@@ -61,7 +60,14 @@ protected Window(AutomationElement automationElement, ActionListener actionListe
             : base(automationElement, actionListener, initializeOption, windowSession)
         {
             InitializeWindow();
-            minOpenTime = Task.Factory.StartNew(() => Thread.Sleep(500));
+            minOpenTime = new ManualResetEvent(false);
+            Timer timer = null;
+            TimerCallback timerCallback = state =>
+            {
+                timer.Dispose();
+                minOpenTime.Set();
+            };
+            timer = new Timer(timerCallback, null, TimeSpan.FromMilliseconds(500), TimeSpan.FromMilliseconds(-1));
         }
 
         private void InitializeWindow()
@@ -122,7 +128,7 @@ public virtual bool IsClosed
 
         public virtual void Close()
         {
-            minOpenTime.Wait();
+            minOpenTime.WaitOne();
             var windowPattern = (WindowPattern)Pattern(WindowPattern.Pattern);
             try
             {
diff --git a/src/TestStack.White/packages.config b/src/TestStack.White/packages.config
index 7cd86bf4..37fabee9 100644
--- a/src/TestStack.White/packages.config
+++ b/src/TestStack.White/packages.config
@@ -1,5 +1,5 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Castle.Core" version="3.2.0" targetFramework="net40" />
-  <package id="GitHubFlowVersion" version="1.3.1" targetFramework="net40" />
+  <package id="Castle.Core" version="3.2.0" targetFramework="net35" />
+  <package id="GitHubFlowVersion" version="1.3.1" targetFramework="net35" />
 </packages>
\ No newline at end of file
