Designing Genetic Circuits For Memory And Communication