Genome Engineering Techniques – Opportunities and Challenges