1. Drop go-convey and use primitive go-test tools to support MacBook m1 core. 2. Data transfer feature should be abstracted as an interface, go-legs should be an implementation of this interface. 3. Clean code structure and dependencies. 4. Re-design data fetch(consume) interface to improve ease of use.