build in .net 3.5
seperate write method from data put