refactored the for loop to read better, caught the IllegalMonitorStateException for wait(), and called run() in the constructor, FINALLY