Not complete, lots of shit to fix