First commit, with only GUI completed