improved design for Element creation