First pass of everything.
Possible slution