added queue functionality. must finish todos