Merge "some refactoring and multi-threading fixes"