Switch to using Mutex instead of RWLock because the overhead probably won't be worth it
Modify members to be capable of representing 'gaps'