Finished 5. Could be done better, but it works.