solutions so far
solutions so far