added initialization and reader