public float move(float amtXIn, float amtYIn) {
		if (amtXIn != 0.0f && amtYIn != 0.0f) {
			throw new IllegalArgumentException(
					"Can only move in 1 dimension per call");
		}
		structure.remove(this);
		double amtX = (double) amtXIn;
		double amtY = (double) amtYIn;

		CollisionComponent c = (CollisionComponent) getComponent(CollisionComponent.ID);
		if (c != null) {
			DoublePair amts = c.resolveCollisions(amtX, amtY);
			amtX = amts.getVal1();
			amtY = amts.getVal2();
		}

		x += amtX;
		y += amtY;
		structure.add(this);
		if (amtX != 0) {
			return (float) amtX;
		} else {
			return (float) amtY;
		}
	}