Added a bunch, refactored a bunch. It is actually working now. Need to not have huge commits like this. Need to split into separate files