DNA Computing: a survey