added a few lock()
draft ArrayList