main spec