many updates to interface with backend