actions.read modeled after grunt.