solutions in comments, haven't been implemented however. end in sight