Seems to be working fine. Need additional methods and locking fields.