interfaces don't need final