finished all except jQuery functionality