first part , just the basics