Turned into template and more descriptive.

It being an abstract class was pretty unnecessary.