(this thread is a mess)