Re-organize code structure and make unified experiment code, need more tests soon