campbx exchange model

progress toward #1