added ValueReader and ValueWriter interfaces