Refactor csv into data, random and cmp into utils
Add reproduce function
Add reproduce test