element refactored