Trying out this whole interfaces thing to be able to properly package things.