diff --git a/ImageSource.lvlib b/ImageSource.lvlib
index 9f11268677ee935d47ea249cd2c08d82c8e69321..9cd0dfab027c31e4c87b1eb14c1b3b51fecb61c9 100644
--- a/ImageSource.lvlib
+++ b/ImageSource.lvlib
@@ -6,6 +6,7 @@
 	<Property Name="NI.LV.All.SourceOnly" Type="Bool">true</Property>
 	<Item Name="_demo" Type="Folder">
 		<Item Name="GetAttribListTest.vi" Type="VI" URL="../_demo/GetAttribListTest.vi"/>
+		<Item Name="ImageSourceBaseBasics.vi" Type="VI" URL="../_demo/ImageSourceBaseBasics.vi"/>
 		<Item Name="ImageSourceBaseTest.vi" Type="VI" URL="../_demo/ImageSourceBaseTest.vi"/>
 		<Item Name="ImageSourceBasic.vi" Type="VI" URL="../_demo/ImageSourceBasic.vi"/>
 		<Item Name="ImageSourceTest.vi" Type="VI" URL="../_demo/ImageSourceTest.vi"/>
diff --git a/ImageSourceBase/Imaqdx/Acquire.vi b/ImageSourceBase/Imaqdx/Acquire.vi
index fb4fcb39d4217ad1d231e71e81243a40767aa54b..9c2a48e17d5793452457a39f6421e2e672559545 100644
Binary files a/ImageSourceBase/Imaqdx/Acquire.vi and b/ImageSourceBase/Imaqdx/Acquire.vi differ
diff --git a/ImageSourceBase/Imaqdx/Basler/FW/Write On_Off.vi b/ImageSourceBase/Imaqdx/Basler/FW/Write On_Off.vi
index f45eab275857d939c9659ded4ff8adfd6d739f93..60e7d4fb721ad02f0d6baa96cb190a25710c645a 100644
Binary files a/ImageSourceBase/Imaqdx/Basler/FW/Write On_Off.vi and b/ImageSourceBase/Imaqdx/Basler/FW/Write On_Off.vi differ
diff --git a/ImageSourceBase/Imaqdx/Get Configure.vi b/ImageSourceBase/Imaqdx/Get Configure.vi
index b8a728c76a2649ec8b6e768935f2521ad849b85b..e4608cdedd305179a1c3bf3e651cf3f19e3267e3 100644
Binary files a/ImageSourceBase/Imaqdx/Get Configure.vi and b/ImageSourceBase/Imaqdx/Get Configure.vi differ
diff --git a/ImageSourceBase/Imaqdx/ImageSourceImaqdx.lvclass b/ImageSourceBase/Imaqdx/ImageSourceImaqdx.lvclass
index f2da4053e7a8063ef3dbf90a82869a205dbf6c15..16d7f766e4b03c0d38815d4a91c4b4c6d54f3c94 100644
--- a/ImageSourceBase/Imaqdx/ImageSourceImaqdx.lvclass
+++ b/ImageSourceBase/Imaqdx/ImageSourceImaqdx.lvclass
@@ -86,15 +86,6 @@
 			<Property Name="NI.ClassItem.Priority" Type="Int">1</Property>
 			<Property Name="NI.ClassItem.State" Type="Int">8388608</Property>
 		</Item>
-		<Item Name="Read WaitNextFrame.vi" Type="VI" URL="../Read WaitNextFrame.vi">
-			<Property Name="NI.ClassItem.ConnectorPane" Type="Bin">&amp;!#!!!!!!!)!"1!&amp;!!!-!%!!!@````]!!!!"!!%!!!&amp;U!!!!#A!-1#%'=X2B&gt;(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&amp;!!!Q!!!!%!!AFF=H*P=C"P&gt;81!"!!!!"*!)1V897FU4G6Y&gt;%:S97VF!%R!=!!?!!!N%5FN97&gt;F5W^V=G.F,GRW&lt;'FC'5FN97&gt;F5W^V=G.F37VB=72Y,GRW9WRB=X-!&amp;5FN97&gt;F5W^V=G.F37VB=72Y)'^V&gt;!!A1&amp;!!!Q!!!!%!!B.F=H*P=C"J&lt;C!I&lt;G]A:8*S&lt;X)J!%R!=!!?!!!N%5FN97&gt;F5W^V=G.F,GRW&lt;'FC'5FN97&gt;F5W^V=G.F37VB=72Y,GRW9WRB=X-!&amp;%FN97&gt;F5W^V=G.F37VB=72Y)'FO!!"B!0!!$!!$!!1!"1!'!!1!"!!%!!1!"Q!%!!1!#!)!!(A!!!U)!!!!!!!!#1!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!%!!!$1!!!!Q!!!!!!!!!!!!!!1!*!!!!!!</Property>
-			<Property Name="NI.ClassItem.ExecutionSystem" Type="Int">-1</Property>
-			<Property Name="NI.ClassItem.Flags" Type="Int">1073741824</Property>
-			<Property Name="NI.ClassItem.IsStaticMethod" Type="Bool">true</Property>
-			<Property Name="NI.ClassItem.MethodScope" Type="UInt">3</Property>
-			<Property Name="NI.ClassItem.Priority" Type="Int">1</Property>
-			<Property Name="NI.ClassItem.State" Type="Int">1082130944</Property>
-		</Item>
 		<Item Name="Set AttributeDBL.vi" Type="VI" URL="../Set AttributeDBL.vi">
 			<Property Name="NI.ClassItem.ConnectorPane" Type="Bin">&amp;!#!!!!!!!)!"1!&amp;!!!-!%!!!@````]!!!!"!!%!!!'*!!!!#Q!-1#%'=X2B&gt;(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&amp;!!!Q!!!!%!!AFF=H*P=C"P&gt;81!"!!!!%R!=!!?!!!N%5FN97&gt;F5W^V=G.F,GRW&lt;'FC'5FN97&gt;F5W^V=G.F37VB=72Y,GRW9WRB=X-!&amp;5FN97&gt;F5W^V=G.F37VB=72Y)'^V&gt;!!A1&amp;!!!Q!!!!%!!B.F=H*P=C"J&lt;C!I&lt;G]A:8*S&lt;X)J!!^!#A!)6G&amp;M&gt;76%1EQ!!"B!-0````]017.U;8:F182U=GFC&gt;82F!%R!=!!?!!!N%5FN97&gt;F5W^V=G.F,GRW&lt;'FC'5FN97&gt;F5W^V=G.F37VB=72Y,GRW9WRB=X-!&amp;%FN97&gt;F5W^V=G.F37VB=72Y)'FO!!"B!0!!$!!$!!1!"!!&amp;!!1!"!!%!!1!"A!(!!A!#1-!!(A!!!U)!!!!!!!!!!!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!"!!!!!1!!!!%!!!$1!!!!Q!!!!!!!!!!!!!!1!+!!!!!!</Property>
 			<Property Name="NI.ClassItem.ExecutionSystem" Type="Int">-1</Property>
@@ -173,6 +164,15 @@
 			<Property Name="NI.ClassItem.Priority" Type="Int">1</Property>
 			<Property Name="NI.ClassItem.State" Type="Int">1342972416</Property>
 		</Item>
+		<Item Name="Read Buffer.vi" Type="VI" URL="../Read Buffer.vi">
+			<Property Name="NI.ClassItem.ConnectorPane" Type="Bin">&amp;!#!!!!!!!)!"1!&amp;!!!-!%!!!@````]!!!!"!!%!!!'&amp;!!!!#Q!-1#%'=X2B&gt;(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&amp;!!!Q!!!!%!!AFF=H*P=C"P&gt;81!%U!(!!V#&gt;7:G:8)A4H6N9G6S!""!)1N/:8=A1H6G:G6S0Q"-1(!!(A!!,2&amp;*&lt;7&amp;H:6.P&gt;8*D:3ZM&gt;GRJ9BF*&lt;7&amp;H:6.P&gt;8*D:5FN98&amp;E?#ZM&gt;G.M98.T!"6*&lt;7&amp;H:6.P&gt;8*D:5FN98&amp;E?#"P&gt;81!"!!!!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO&lt;S"F=H*P=CE!4%"Q!"Y!!#U237VB:W64&lt;X6S9W5O&lt;(:M;7):37VB:W64&lt;X6S9W6*&lt;7&amp;R:(AO&lt;(:D&lt;'&amp;T=Q!537VB:W64&lt;X6S9W6*&lt;7&amp;R:(AA;7Y!!'%!]!!-!!-!"!!&amp;!!9!"Q!(!!=!"Q!)!!=!"Q!*!A!!?!!!$1A!!!E!!!!*!!!!$1M!!!!!!!!!!!!!!!!!!!!!!!!)!!!!!!!!!!!!!!!1!!!.!!!!$!!!!!!!!!!!!!!"!!I!!!!!</Property>
+			<Property Name="NI.ClassItem.ExecutionSystem" Type="Int">-1</Property>
+			<Property Name="NI.ClassItem.Flags" Type="Int">16777216</Property>
+			<Property Name="NI.ClassItem.IsStaticMethod" Type="Bool">true</Property>
+			<Property Name="NI.ClassItem.MethodScope" Type="UInt">1</Property>
+			<Property Name="NI.ClassItem.Priority" Type="Int">1</Property>
+			<Property Name="NI.ClassItem.State" Type="Int">268967936</Property>
+		</Item>
 		<Item Name="Read Gain.vi" Type="VI" URL="../Read Gain.vi">
 			<Property Name="NI.ClassItem.ConnectorPane" Type="Bin">&amp;!#!!!!!!!)!"1!&amp;!!!-!%!!!@````]!!!!"!!%!!!&amp;A!!!!#A!-1#%'=X2B&gt;(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&amp;!!!Q!!!!%!!AFF=H*P=C"P&gt;81!"!!!!!N!!Q!%2W&amp;J&lt;A!!4%"Q!"Y!!#U237VB:W64&lt;X6S9W5O&lt;(:M;7):37VB:W64&lt;X6S9W6*&lt;7&amp;R:(AO&lt;(:D&lt;'&amp;T=Q!637VB:W64&lt;X6S9W6*&lt;7&amp;R:(AA&lt;X6U!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO&lt;S"F=H*P=CE!4%"Q!"Y!!#U237VB:W64&lt;X6S9W5O&lt;(:M;7):37VB:W64&lt;X6S9W6*&lt;7&amp;R:(AO&lt;(:D&lt;'&amp;T=Q!537VB:W64&lt;X6S9W6*&lt;7&amp;R:(AA;7Y!!&amp;1!]!!-!!-!"!!&amp;!!9!"!!%!!1!"!!(!!1!"!!)!A!!?!!!$1A!!!!!!!!*!!!!D1M!!!!!!!!!!!!!!!!!!!!!!!!)!!!!!!!!!!!!!!#1!!!!!!%!#1!!!!!</Property>
 			<Property Name="NI.ClassItem.ExecutionSystem" Type="Int">-1</Property>
@@ -191,6 +191,15 @@
 			<Property Name="NI.ClassItem.Priority" Type="Int">1</Property>
 			<Property Name="NI.ClassItem.State" Type="Int">1342710272</Property>
 		</Item>
+		<Item Name="Read Timeout.vi" Type="VI" URL="../Read Timeout.vi">
+			<Property Name="NI.ClassItem.ConnectorPane" Type="Bin">&amp;!#!!!!!!!)!"1!&amp;!!!-!%!!!@````]!!!!"!!%!!!&amp;Q!!!!#A!-1#%'=X2B&gt;(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&amp;!!!Q!!!!%!!AFF=H*P=C"P&gt;81!"!!!!!Z!)1B5;7VF&lt;X6U0Q!!4%"Q!"Y!!#U237VB:W64&lt;X6S9W5O&lt;(:M;7):37VB:W64&lt;X6S9W6*&lt;7&amp;R:(AO&lt;(:D&lt;'&amp;T=Q!637VB:W64&lt;X6S9W6*&lt;7&amp;R:(AA&lt;X6U!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO&lt;S"F=H*P=CE!4%"Q!"Y!!#U237VB:W64&lt;X6S9W5O&lt;(:M;7):37VB:W64&lt;X6S9W6*&lt;7&amp;R:(AO&lt;(:D&lt;'&amp;T=Q!537VB:W64&lt;X6S9W6*&lt;7&amp;R:(AA;7Y!!'%!]!!-!!-!"!!&amp;!!9!"!!%!!1!"!!(!!1!"!!)!A!!?!!!$1A!!!!!!!!*!!!!$1M!!!!!!!!!!!!!!!!!!!!!!!!)!!!!!!!!!!!!!!!1!!!.!!!!$!!!!!!!!!!!!!!"!!E!!!!!</Property>
+			<Property Name="NI.ClassItem.ExecutionSystem" Type="Int">-1</Property>
+			<Property Name="NI.ClassItem.Flags" Type="Int">16777216</Property>
+			<Property Name="NI.ClassItem.IsStaticMethod" Type="Bool">true</Property>
+			<Property Name="NI.ClassItem.MethodScope" Type="UInt">1</Property>
+			<Property Name="NI.ClassItem.Priority" Type="Int">1</Property>
+			<Property Name="NI.ClassItem.State" Type="Int">1107820544</Property>
+		</Item>
 		<Item Name="Read Trigger.vi" Type="VI" URL="../Read Trigger.vi">
 			<Property Name="NI.ClassItem.ConnectorPane" Type="Bin">&amp;!#!!!!!!!)!"1!&amp;!!!-!%!!!@````]!!!!"!!%!!!&amp;B!!!!#A!-1#%'=X2B&gt;(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&amp;!!!Q!!!!%!!AFF=H*P=C"P&gt;81!"!!!!!R!)1&gt;5=GFH:W6S!%R!=!!?!!!N%5FN97&gt;F5W^V=G.F,GRW&lt;'FC'5FN97&gt;F5W^V=G.F37VB=72Y,GRW9WRB=X-!&amp;5FN97&gt;F5W^V=G.F37VB=72Y)'^V&gt;!!A1&amp;!!!Q!!!!%!!B.F=H*P=C"J&lt;C!I&lt;G]A:8*S&lt;X)J!%R!=!!?!!!N%5FN97&gt;F5W^V=G.F,GRW&lt;'FC'5FN97&gt;F5W^V=G.F37VB=72Y,GRW9WRB=X-!&amp;%FN97&gt;F5W^V=G.F37VB=72Y)'FO!!"5!0!!$!!$!!1!"1!'!!1!"!!%!!1!"Q!%!!1!#!)!!(A!!!U)!!!!!!!!#1!!!)U,!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!E!!!!!!"!!E!!!!!</Property>
 			<Property Name="NI.ClassItem.ExecutionSystem" Type="Int">-1</Property>
@@ -200,6 +209,15 @@
 			<Property Name="NI.ClassItem.Priority" Type="Int">1</Property>
 			<Property Name="NI.ClassItem.State" Type="Int">1342972416</Property>
 		</Item>
+		<Item Name="Read WaitNextFrame.vi" Type="VI" URL="../Read WaitNextFrame.vi">
+			<Property Name="NI.ClassItem.ConnectorPane" Type="Bin">&amp;!#!!!!!!!)!"1!&amp;!!!-!%!!!@````]!!!!"!!%!!!&amp;U!!!!#A!-1#%'=X2B&gt;(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&amp;!!!Q!!!!%!!AFF=H*P=C"P&gt;81!"!!!!"*!)1V897FU4G6Y&gt;%:S97VF!%R!=!!?!!!N%5FN97&gt;F5W^V=G.F,GRW&lt;'FC'5FN97&gt;F5W^V=G.F37VB=72Y,GRW9WRB=X-!&amp;5FN97&gt;F5W^V=G.F37VB=72Y)'^V&gt;!!A1&amp;!!!Q!!!!%!!B.F=H*P=C"J&lt;C!I&lt;G]A:8*S&lt;X)J!%R!=!!?!!!N%5FN97&gt;F5W^V=G.F,GRW&lt;'FC'5FN97&gt;F5W^V=G.F37VB=72Y,GRW9WRB=X-!&amp;%FN97&gt;F5W^V=G.F37VB=72Y)'FO!!"B!0!!$!!$!!1!"1!'!!1!"!!%!!1!"Q!%!!1!#!)!!(A!!!U)!!!!!!!!#1!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!%!!!$1!!!!Q!!!!!!!!!!!!!!1!*!!!!!!</Property>
+			<Property Name="NI.ClassItem.ExecutionSystem" Type="Int">-1</Property>
+			<Property Name="NI.ClassItem.Flags" Type="Int">0</Property>
+			<Property Name="NI.ClassItem.IsStaticMethod" Type="Bool">true</Property>
+			<Property Name="NI.ClassItem.MethodScope" Type="UInt">1</Property>
+			<Property Name="NI.ClassItem.Priority" Type="Int">1</Property>
+			<Property Name="NI.ClassItem.State" Type="Int">1082130944</Property>
+		</Item>
 		<Item Name="Set Configure.vi" Type="VI" URL="../Set Configure.vi">
 			<Property Name="NI.ClassItem.ConnectorPane" Type="Bin">&amp;!#!!!!!!!)!"1!&amp;!!!-!%!!!@````]!!!!"!!%!!!(\!!!!#Q!-1#%'=X2B&gt;(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&amp;!!!Q!!!!%!!AFF=H*P=C"P&gt;81!"!!!!&amp;2!=!!?!!!Q%5FN97&gt;F5W^V=G.F,GRW&lt;'FC(%FN97&gt;F5W^V=G.F1W^O:GFH&gt;8*F,GRW9WRB=X-!!"B*&lt;7&amp;H:6.P&gt;8*D:5.P&lt;G:J:X6S:3"P&gt;81!!%R!=!!?!!!N%5FN97&gt;F5W^V=G.F,GRW&lt;'FC'5FN97&gt;F5W^V=G.F37VB=72Y,GRW9WRB=X-!&amp;5FN97&gt;F5W^V=G.F37VB=72Y)'^V&gt;!!A1&amp;!!!Q!!!!%!!B.F=H*P=C"J&lt;C!I&lt;G]A:8*S&lt;X)J!&amp;*!=!!?!!!Q%5FN97&gt;F5W^V=G.F,GRW&lt;'FC(%FN97&gt;F5W^V=G.F1W^O:GFH&gt;8*F,GRW9WRB=X-!!"&gt;*&lt;7&amp;H:6.P&gt;8*D:5.P&lt;G:J:X6S:3"J&lt;A"-1(!!(A!!,2&amp;*&lt;7&amp;H:6.P&gt;8*D:3ZM&gt;GRJ9BF*&lt;7&amp;H:6.P&gt;8*D:5FN98&amp;E?#ZM&gt;G.M98.T!"2*&lt;7&amp;H:6.P&gt;8*D:5FN98&amp;E?#"J&lt;A!!6!$Q!!Q!!Q!%!!5!"A!%!!1!"!!%!!=!"!!)!!E$!!"Y!!!.#!!!!!!!!!U+!!#.#Q!!!!!!!!!!!!!!!!!!!!!!!!I!!!!!!!!!%A!!!*)!!!!!!1!+!!!!!!</Property>
 			<Property Name="NI.ClassItem.ExecutionSystem" Type="Int">-1</Property>
diff --git a/ImageSourceBase/Imaqdx/Read Brightness.vi b/ImageSourceBase/Imaqdx/Read Brightness.vi
index 712037a27b804cdd1dc863315bb807c20f2786af..bc80d11d14ff1d478485d4038da59f4fdfdcaa7b 100644
Binary files a/ImageSourceBase/Imaqdx/Read Brightness.vi and b/ImageSourceBase/Imaqdx/Read Brightness.vi differ
diff --git a/ImageSourceBase/Imaqdx/Read Buffer.vi b/ImageSourceBase/Imaqdx/Read Buffer.vi
new file mode 100644
index 0000000000000000000000000000000000000000..73c29838ac6bce4fc85aefd7ab5b57b111c69774
Binary files /dev/null and b/ImageSourceBase/Imaqdx/Read Buffer.vi differ
diff --git a/ImageSourceBase/Imaqdx/Read Gain.vi b/ImageSourceBase/Imaqdx/Read Gain.vi
index fcc89536f2e1c94b81babe38f16a8ee403350470..e5e664a1018c9166e2cfd682ada20b9fe02ce712 100644
Binary files a/ImageSourceBase/Imaqdx/Read Gain.vi and b/ImageSourceBase/Imaqdx/Read Gain.vi differ
diff --git a/ImageSourceBase/Imaqdx/Read Shutter.vi b/ImageSourceBase/Imaqdx/Read Shutter.vi
index 2232099493856d8408e2ce6865b2d4fb4de71f19..8ff9f0fab196407f1bea88b19091071384210307 100644
Binary files a/ImageSourceBase/Imaqdx/Read Shutter.vi and b/ImageSourceBase/Imaqdx/Read Shutter.vi differ
diff --git a/ImageSourceBase/Imaqdx/Read Timeout.vi b/ImageSourceBase/Imaqdx/Read Timeout.vi
new file mode 100644
index 0000000000000000000000000000000000000000..8f9b7d79ee36517b20920920a51c96341878abc5
Binary files /dev/null and b/ImageSourceBase/Imaqdx/Read Timeout.vi differ
diff --git a/ImageSourceBase/Imaqdx/Read Trigger.vi b/ImageSourceBase/Imaqdx/Read Trigger.vi
index 10eee588903e81e3a75848a939fb6790dbdfa1f4..73d8b4763b94507e2a8a866c53994562e8ab863e 100644
Binary files a/ImageSourceBase/Imaqdx/Read Trigger.vi and b/ImageSourceBase/Imaqdx/Read Trigger.vi differ
diff --git a/ImageSourceBase/Imaqdx/Write Camera Name.vi b/ImageSourceBase/Imaqdx/Write Camera Name.vi
index 003a81ee82e65cfdce197bce65f854ef842683d8..cdbe7fedfa18133728df6faf77b4a258b7c3ff63 100644
Binary files a/ImageSourceBase/Imaqdx/Write Camera Name.vi and b/ImageSourceBase/Imaqdx/Write Camera Name.vi differ
diff --git a/_demo/ImageSourceBaseBasics.vi b/_demo/ImageSourceBaseBasics.vi
new file mode 100644
index 0000000000000000000000000000000000000000..d02350408c4e49f8634fb459d9d7b502e05dadbe
Binary files /dev/null and b/_demo/ImageSourceBaseBasics.vi differ