Free-piston type engines