Implemented evrything but the tryLock() functionality