Fix & Improve

Debugging, refactors and fixing things that aren't working.