A door closer comprising: an electric motor/generator configured to be operatively connected to a door movable between a closed position and an open position, the electric motor/generator having a drive shaft, wherein the drive shaft of the electric motor/generator rotates when the door moves in the direction of opening and in the direction of closing, the motor/generator being configured to apply force to move the door in the direction of closing in response to the rotation of the drive shaft of the electric motor/generator; a speed sensor for determining the position and closing speed of the door; a timer for determining closing time of the door; an electrical energy storage element connected to the motor/generator and configured to store electrical energy generated by the electric motor/generator as the door moves in the direction of opening or closing; and a motor/generator controller connected to the speed sensor, timer and motor/generator, the controller receiving input from the speed sensor and timer and controlling operation of the electric motor/generator, characterised in that the controller determines as the door continues to move whether the door is closing within a predetermined acceptable closing time or with a predetermined acceptable closing speed, using determined door closing time greater than the predetermined acceptable closing time or door closing speed less than the predetermined acceptable closing speed, determining as the door continues to move whether a motor assist is needed to complete closing of the door, and thereafter causing the electric motor/generator to be powered by electrical energy generated by the electric motor/generator and stored in the electrical energy storage element to apply supplemental force to assist the door in closing to the closed position. an electric motor/generator configured to be operatively connected to a door movable between a closed position and an open position, the electric motor/generator having a drive shaft, wherein the drive shaft of the electric motor/generator rotates when the door moves in the direction of opening and in the direction of closing, the motor/generator being configured to apply force to move the door in the direction of closing in response to the rotation of the drive shaft of the electric motor/generator; a speed sensor for determining the position and closing speed of the door; a timer for determining closing time of the door; an electrical energy storage element connected to the motor/generator and configured to store electrical energy generated by the electric motor/generator as the door moves in the direction of opening or closing; and a motor/generator controller connected to the speed sensor, timer and motor/generator, the controller receiving input from the speed sensor and timer and controlling operation of the electric motor/generator, characterised in that the controller determines as the door continues to move whether the door is closing within a predetermined acceptable closing time or with a predetermined acceptable closing speed, using determined door closing time greater than the predetermined acceptable closing time or door closing speed less than the predetermined acceptable closing speed, determining as the door continues to move whether a motor assist is needed to complete closing of the door, and thereafter causing the electric motor/generator to be powered by electrical energy generated by the electric motor/generator and stored in the electrical energy storage element to apply supplemental force to assist the door in closing to the closed position.