made 'do', 'then' and 'of' optional before blocks