Added solution and some of the additional stuff (that is NOT done yet)