add dna class, refactor cons