Updated to be more tokenized and configurable