use non-pointer embed BaseRecord
Fix defer
fix column name getter