main and solutions work