+ Cleaned up a bit, but still not working as it should. So I'll discard
this branch completely.