It took a long time finishing this as I kept experimenting and rewriting it as I wasn't satisfied with the outcome, I hope you will enjoy reading it as much as I do.
Feel free to leave any thoughts or questions in the comments and feel free to suggest any keywords.