restructure, to use cargo build system