More documentation and added a producer function.