Improve responsiveness

-Change lock types
-Add lock for background thread
-Almost all methods now start a background thread