test runs so far, maybe i need more multi-threading