use interface instead of implementation in declarations and method signatures (TLongList instead of TLongArrayList)
add Schema level ReadWriteLock for thread safety