switched to synchronousQueue
clean up and removed abstraction