adding generic exchange, will rename later