Adding accessor for node and fixing ik targets.
diff --git a/Source/Actor.cpp b/Source/Actor.cpp
index 9421f31..4105828 100644
--- a/Source/Actor.cpp
+++ b/Source/Actor.cpp
@@ -66,6 +66,19 @@
 	return m_Nodes[index];
 }
 
+ActorNode* Actor::getNode(const std::string& name) const
+{
+	for(int i = 0; i < m_NodeCount; i++)
+	{
+		ActorNode* a = m_Nodes[i];
+		if(a->name() == name)
+		{
+			return a;
+		}
+	}
+	return nullptr;
+}
+
 ActorAnimation* Actor::getAnimation(const std::string& name) const
 {
 	for(int i = 0; i < m_AnimationsCount; i++)
@@ -269,9 +282,9 @@
 	return a->drawOrder() < b->drawOrder();
 }
 
-static bool SolverComparer(Solver* i, Solver* j)
+static bool SolverComparer(Solver* a, Solver* b)
 {
-	return i->order() > j->order();
+	return a->order() < b->order();
 }
 
 void Actor::copy(const Actor& actor)
diff --git a/Source/Actor.hpp b/Source/Actor.hpp
index f809bbb..6e45c47 100644
--- a/Source/Actor.hpp
+++ b/Source/Actor.hpp
@@ -65,6 +65,7 @@
 
 			ActorNode* getNode(unsigned int index) const;
 			ActorNode* getNode(unsigned short index) const;
+			ActorNode* getNode(const std::string& name) const;
 			ActorAnimation* getAnimation(const std::string& name) const;
 
 			void copy(const Actor& actor);
diff --git a/Source/ActorIKTarget.cpp b/Source/ActorIKTarget.cpp
index 40807b6..0f55752 100644
--- a/Source/ActorIKTarget.cpp
+++ b/Source/ActorIKTarget.cpp
@@ -209,7 +209,6 @@
 
 void ActorIKTarget::solveStart()
 {
-	printf("CHAIN %i\n", m_ChainLength);
 	if (m_Bone1 == nullptr)
 	{
 		return;
@@ -275,7 +274,7 @@
 	}
 
 	Vec2D pA; b1->worldTranslation(pA);
-	Vec2D pC; b1->tipWorldTranslation(pA);
+	Vec2D pC; b1->tipWorldTranslation(pC);
 	Vec2D pB; b2->tipWorldTranslation(pB);
 	Vec2D pBT(worldTargetTranslation);
 
@@ -339,17 +338,14 @@
 
 	if (m_NumInfluencedBones == 1)
 	{
-		printf("A\n");
 		solve1(m_InfluencedBones[0].bone, worldTargetTranslation);
 	}
 	else if (m_NumInfluencedBones == 2)
 	{
-		printf("B\n");
 		solve2(m_InfluencedBones[0].bone, m_InfluencedBones[1].bone, worldTargetTranslation, m_InvertDirection);
 	}
 	else
 	{
-		printf("C\n");
 		for (int i = 0; i < m_NumInfluencedBones - 1; i++)
 		{
 			solve2(m_InfluencedBones[i].bone, m_Bone2, worldTargetTranslation, m_InvertDirection);