synchronized may be required after all. stupid me