Started abstraction work to allow multiple frameworks