Basicaly implement reader and writer