added comments explaining data listeners