introduced but disabled a step optimization until the type from 'read' is known at compile time