Change everything. Implement nearly everything