added threading, but still grappling with busy