added record parameter to documentation
updated Stream to return record
used native JSONObject casting instead of Java object casting