added read file callback