most functionality is working