Finished first go, works functionally