Basic, complete, but REALLY MESSY code
Basic, complete, but REALLY MESSY code