here is the basics