WIP - fully functioning, but the code needs some cleanup