public static Session createSession() throws Exception {
threadPool = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
Session session = new SessionBuilder()
.bind(PackageLoader.class, new AetherPackageLoader())
.bind(VectorPipeliner.class, new MultiThreadedVectorPipeliner(threadPool))
.build();
Environment replEnv = session.getGlobalEnvironment().insertAbove(new HashFrame());
loadDefaultPackages(session);
return session;
}