First Commit

Working version, but need to improve the comments and the description