3.0

This one was much harder to follow than the others. Got way too convoluted.