Whole bunches of changes
Final version for now