Initial commit.

A lot to be fixed, added and improved.