building a new framework for this, more when ready