Some halfway work, some solutions.