Initial commit, classes and main script