massive rework of interface