First commit (contains much progress already)