int CraftingSessionImplementation::initializeSession(CraftingTool* tool, CraftingStation* station) {

	craftingTool = tool;
	craftingStation = station;

	ManagedReference<CreatureObject*> crafter = this->crafter.get();
	ManagedReference<CraftingTool*> craftingTool = this->craftingTool.get();

	crafter->addActiveSession(SessionFacadeType::CRAFTING, _this.get());
	craftingTool->addActiveSession(SessionFacadeType::CRAFTING, _this.get());

	craftingTool->setCountdownTimer(0, true);

	craftingTool->disperseItems();

	crafterGhost = crafter->getPlayerObject();

	craftingManager = crafter->getZoneServer()->getCraftingManager();

	experimentationPointsTotal = 0;
	experimentationPointsUsed = 0;

	return startSession();
}