@ScriptyCommand(name="bean-call")
    public Object beanCall(Object[] aArgs, IContext aCtx)
    throws CommandException
    {
        try
        {
            final String lPath = guardStringOther(aArgs);
            final Resolution lRes = resolve(lPath, aCtx);
            if(! filter(lRes)) throw new CommandException("Cannot call filtered.");
            final Object lTarget = lRes.getVal();

            Object[] lArgs = new Object[aArgs.length - 3];
            for(int i = 0; i < lArgs.length; i++) lArgs[i] = aArgs[i + 3];

            Method lMeth = null;
            if(aArgs[2] instanceof Method)
            {
                lMeth = (Method) aArgs[2];
            }
            else if (aArgs[2] instanceof String)
            {
                Class[] lClasses = new Class[lArgs.length];
                for(int i = 0; i < lArgs.length; i++) lClasses[i] = (lArgs[i]==null)?null:lArgs[i].getClass();

                lMeth = lTarget.getClass().getMethod((String) aArgs[2], lClasses);
            }

            if(lMeth == null)
                throw new CommandException("Method could not be resolved.");

            return lMeth.invoke(lTarget, lArgs);
        }
        catch (Exception e)
        {
            throw new CommandException("Invocation failed.\n" + e.getMessage(), e);
        }
    }