abort on symlink loop + refactor Record#build