moves appinput logic into shoppinglist and refactors bloated methods