changes for thread safety