Abstract & linear generator Upgrade