private static boolean circleCircleResolve(CircleObject a, CircleObject b)
	{
		
		double t=-1;
		
		Vector2f aPosition = a.getPosition().copy();
		Vector2f bPosition = b.getPosition().copy();
		Vector2f aVelocity = a.getVelocity().copy();
		Vector2f bVelocity = b.getVelocity().copy();
		
		double distanceSq = aPosition.distanceSquared(bPosition);
		double radiusSumSq = (a.getRadius() + b.getRadius())*(a.getRadius() + b.getRadius());
		
		
		
		//If overlapping
		if(distanceSq < radiusSumSq)
		{
			if(a.isStatic() && b.isStatic())
			{
				//Do Nothing
				return false;
			}
			else if((a.isStatic() && !b.isStatic()))
			{
				//System.out.println("resolving "+a.getPosition()+" "+b.getPosition());
				Vector2f dist = bPosition.sub(aPosition).normalise();
				
				Vector2f newPos = dist.scale((float) (a.getRadius() + b.getRadius()+1));
				
				b.setPosition(aPosition.add(newPos));
				return true;
			}
			else if(!a.isStatic() && b.isStatic())
			{
				//System.out.println("resolving "+a.getPosition()+" "+b.getPosition());
				Vector2f dist = aPosition.sub(bPosition).normalise();
				
				Vector2f newPos = dist.scale((float) (a.getRadius() + b.getRadius()+1));
				
				a.setPosition(bPosition.add(newPos));
				return true;
			}
			else
			{
				if(a.collisionPriority() >= b.collisionPriority())
				{
					//System.out.println("resolving "+a.getPosition()+" "+b.getPosition());
					Vector2f dist = bPosition.sub(aPosition).normalise();
					
					Vector2f newPos = dist.scale((float) (a.getRadius() + b.getRadius()+1));
					
					b.setPosition(aPosition.add(newPos));
					return true;
				}
				else 
				{
					//System.out.println("resolving "+a.getPosition()+" "+b.getPosition());
					Vector2f dist = aPosition.sub(bPosition).normalise();
					
					Vector2f newPos = dist.scale((float) (a.getRadius() + b.getRadius()+1));
					
					a.setPosition(bPosition.add(newPos));
					return true;
				}
			}

			
		}
		
		return false;
	}