Actual updated code. Ignore the last few