synchronized, and also changed genome constructor