Changed abstract reader/writers to interfaces