update of FQueue with a richer, more consistent api