A work in progress, let me know what you think or can be improved! Thanks