Use setValue and getValue for API compatibility with the .NET implementation.
Use ConcurrentHashMap in place of HashMap for improved thread safety