Code still needs to be finished but has most stuff