read directly into dest slice
smarter value assignments
new i/o buffer
refactoring and micro-optimisation