add get and set methods for performance considerations, and prevent any ...

...chance of users changing properties after lock() is called.

including performance tests