Fixed use of magic numbers
Allow nonaligned direct reads
Use prep util function elsewhere
Added indirect write
Added nonaligned indirect reads