add source and destination check
random construction creates only valid plans