add read-file primitive