Abstracted away some logic into order and ordercollection classes.