Restructured for new framework idea I have.