* Updated required version to 3.6 to use `shortcode_atts` optional filter
* Moved all functions into class for better containment