test 2 data classes, fix some bug and start to implement CLI mode