use internal references
refactor assignment
remove queue