create functionality for both secondary, primary, and secondary extinction? Will probably be a good longterm extension.