Incorporating several sources that have given me inspiration...