more element type refactoring