fixed most threading issues, background still displaying incorrectly