complex applications