added ref and solutions