implementing GE