redesigned element def interfaces