turn the script into a Moo-based class