Renaming lambda parameter to callback.
Adding Queue object.
Fixing top property not returning the correct item.