fixed function reader