First commit of data node implementation, hope to save memory