Most of this code should be moved to the front class.
Moving the initialization code to the front will depend on bug 1495387, while still being able to listen for events will depend on bug 1495386.
this introduces all of the required methods for destruction directly into the front.
reopening for the destructor code.