#374 prevent modification of private fields, #379