#5, #7 Made it more efficient and include the more complex expressions.