Maybe the buttons shouldn't be their own files, but the backend functionality certainly could be. I don't do this, but I like the idea.