Started work on making this a less general problem and more specific.