completed outline and functionality