diff --git a/MCP4725/mcp4725.cpp b/MCP4725/mcp4725.cpp
index 88f0f5c..41c54ed 100644
--- a/MCP4725/mcp4725.cpp
+++ b/MCP4725/mcp4725.cpp
@@ -1,22 +1,22 @@
 #include "mcp4725.hpp"
 
-MCP4725::MCP4725()
-{
-
-}
-
-
-
-
 MCP4725::MCP4725(pwrd_md power_down_mode,
-		 i2c_addr address)
+		 i2c_addr address,
+		 i2c_write_n_t i2c_write) :
+			power_down_mode(power_down_mode),
+			address(address),
+			i2c_write(i2c_write)
 {
-
+	
 }
 
-MCP4725::MCP4725(i2c_addr address)
+MCP4725::MCP4725(i2c_addr address,
+		 i2c_write_n_t i2c_write)
+			power_down_mode(MCP4725::normal),
+			address(address),
+			i2c_write(i2c_write)
 {
-
+	
 }
 
 MCP4725::~MCP4725()
diff --git a/MCP4725/mcp4725.hpp b/MCP4725/mcp4725.hpp
index 8d5d5dd..90dd86c 100644
--- a/MCP4725/mcp4725.hpp
+++ b/MCP4725/mcp4725.hpp
@@ -26,10 +26,16 @@ class MCP4725
 			ohm_500k = 0x03
 		};
 
+		//using std::functional<uint8_t(uint8_t, uint8_t)> i2c_read_n_t;
+
+		using std::functional<void(uint8_t,uint8_t)> i2c_write_n_t;
+
 		MCP4725(pwrd_md power_down_mode,
-			i2c_addr address);
+			i2c_addr address,
+			i2c_write_n_t i2c_write);
 
-		MCP4725(i2c_addr address);
+		MCP4725(i2c_addr address,
+			i2c_write_n_t i2c_write);
 
 		~MCP4725();
 		
@@ -49,6 +55,7 @@ class MCP4725
 	private:
 		i2c_addr address;
 		pwrd_md power_down_mode;
+		i2c_write_n_t i2c_write;
 
 
 };