Initial commit.
Build was succeeded, but the code is not tested yet.
some cleanup