store path after validating in constructor + use double for path weight