added abstraction for mutexes
enhanced getting argument
more abstraction for network access