added namespacing and custom exceptions
changed lock blocking to non-blocking: instead of throwing exception just disable server file caching for this session preventing application hanging
added lock retry method to prevent application from hanging or quitting too soon.