code: public function apply(Scope $scope, GenericList $arguments) {
  		if (!($scope instanceof Environment)) throw new \RuntimeException("EnvironmentImport: Cannot import package from outside of main context.");
  		$nargs = count($arguments);
  		if ($nargs == 0) throw new \BadFunctionCallException('EnvironmentImport: No package specified.');
  		if (!($arguments[0] instanceof Symbol))
  			throw new \InvalidArgumentException(sprintf("EnvironmentImport: Expected symbol as first argument but %s was found instead.", substr(strtolower(strstr(get_class($arguments[0]), '\\')), 1)));
  		$package = $arguments[0]->symbol;
  		
  		if (!class_exists($package, true)) {
  			//try finding a compatible package in eMacros\\Package namespace
  			$xpackage = sprintf("eMacros\\Package\\%sPackage", $package);
  			if (class_exists($xpackage, true)) $package = $xpackage;
  			else throw new \InvalidArgumentException("EnvironmentImport: Package '$package' not found.");
  		}
  		
  		$rc = new \ReflectionClass($package);
  		
  		if ($rc->isSubclassOf('eMacros\Package\Package')) {
  			if ($nargs > 1) {
  				if (!($arguments[1] instanceof Symbol))
  					throw new \InvalidArgumentException(sprintf("EnvironmentImport: Expected symbol as second argument but %s was found instead.", substr(strtolower(strstr(get_class($arguments[1]), '\\')), 1)));
  				$alias = $arguments[1]->symbol;
  				//validate alias
  				if (!preg_match(Symbol::PACKAGE_PREFIX, $alias . '::')) throw new \InvalidArgumentException("EnvironmentImport: Alias '$alias' is not a valid package alias.");
  				return $scope->import($rc->newInstance(), $alias);
  			}
  			
  			return $scope->import($rc->newInstance());
  		}
  		
  		throw new \InvalidArgumentException("EnvironmentImport: '$package' is not a valid package class.");
  	}
docs: Imports a package into current environment
  Usage: (import eMacros\Package\MathPackage) (import eMacros\Package\PasswordPackage Pwd)
  Returns: NULL
  (non-PHPdoc)
  @see \eMacros\Applicable::apply()