most functionality now working