solution so far