protected function error( $messageKey, $value = null ) {
        //was a global message set? let's use the global key then
        if( key_exists( self::GLOBAL_MESSAGE_KEY, $this->templates ) )
            $messageKey = self::GLOBAL_MESSAGE_KEY;
        
        //invalide message key
        if( !key_exists( $messageKey, $this->templates ) )
            throw new Exception\MessageTemplateDoesNotExist( "A message template does not exist for key $messageKey" );

        $this->messages[ $messageKey ] = $this->buildMessage( $this->templates[$messageKey], $value );
    }