Creating Life from Code: Understanding Synthetic Biology