added bad reimplimentation of new general case