I am getting an error
Call to a member function append()....Mage/Adminhtml/Controller/Action.php on line 122
. I have worked out it is down to my indexAction in the controller
public function indexAction()
{
$this->_addContent($this->getLayout()->createBlock('prefs/adminhtml_forms'));
$this->renderLayout();
}
So I have taken a look at the origin of the error
protected function _addContent(Mage_Core_Block_Abstract $block)
{
$this->getLayout()->getBlock('content')->append($block);
return $this;
}
I see it requires a block that has to be Mage_Core_Block_Abstract and the block I am calling is Mage_Adminhtml_block_Widget_Grid_Container, however digging down I find Mage_Core_Block_Abstract is the being extended.

So I'm now left with the question, what have I done wrong and how do I resolve it?
class Ps_Prefs_Block_Adminhtml_Forms
extends Mage_Adminhtml_block_Widget_Grid_Container
{
public function _construct()
{
$this->_controller = 'adminhtml_forms';//path to block
$this->_blockGroup = 'prefs';//module name
$this->_headerText = $this->__( 'Form Fields' );
$this->_addButtonLabel = $this->__( 'New Field' );
parent::_construct();
}
protected function _prepareLayout()
{
$this->setChild( 'grid',
$this->getLayout()->createBlock( $this->_blockGroup . '/' . $this->_controller . '_grid',
$this->_controller . '.grid' )->setSaveParametersInSession( TRUE ) );
return parent::_prepareLayout();
}
}