generic candidate gen
tweeks to be done