first pass basic skeleton