refactor table.name to table.table_name
allow blocks passed to scan to be optional
add index accessibility methods
better handling of default data for a row