refactored remaining elements