use dict to pass around data