bloodly hell this is getting messy, some models for demand