lots of old changes. implements interactive payment input.