public function set($source, $destination)
    {
        //argument test
        Argument::i()
            //argument 1 must be a string or object
            ->test(1, 'string', 'object')
            //argument 2 must be a string or object
            ->test(2, 'string', 'object');
        
        //if source is an object
        if (is_object($source)) {
            //transform it into string class
            $source = get_class($source);
        }

        //if it is a string
        if (is_string($destination)) {
            //we need to consider if this is a vitual class
            $destination = $this->get($destination);
        }
        
        //now let's route it
        $this->route[strtolower($source)] = $destination;
        
        return $this;
    }