we synchronize on these methods to defend against multiple concurrent writer