an experiment gone horribly wrong
implement multi-threading
merge