incorporated better selection methods