don't even know what I did here
the interface stuff is starting to make more sense