public Position jumpStep(double time) throws IllegalArgumentException, IllegalStateException {
		if (time < 0)
			throw new IllegalArgumentException("The time can't be negative.");
		
		if (time == 0)
			return this.getPosition();
		
		double mass = this.getMass(); //efficiency.
		
		if(mass <= 0)
			throw new IllegalStateException("The mass was less than or equal to zero.");
		// Calculation
		double startSpeed = (this.getForce() / mass) * this.getForceTime();
		double startSpeedX = startSpeed * Math.cos(this.getAngle());
		double startSpeedY = startSpeed * Math.sin(this.getAngle());
		double x = this.getPosition().getX() + (startSpeedX * time);
		double y = this.getPosition().getY() + (startSpeedY * time 
				- Constants.EARTH_ACCELERATION * Math.pow(time, 2) / 2.0);
		// Return
		return new Position(x, y);
	}