element/type/message
refactoring