Re-factoring to incorporate handling of shorthand and create more
discrete methods