added a naive parallel for-loop which doubled performance, but still have another 2x to go