I think I would work on this part before getting too deep into implementation details.

I mean, forget Java for a minute. Forget programming. Forget everything except the problem:

If you...