Implemented reader and writer