refactor uspelement