finish functional JS 8-12