Should be a framework