added some stuff to the base interface. I may take it out eventually, but im not sure yet. may move it to the abstract class right above it instead of the interface.