Update to 4.0.0
Initial commit
Code cleanup & Documentation - round one