Made LockNeedleContext into sigleton
Caching the LockNeedleContext instances
Propagated references to LockNeedleContext
Removed singleton