Widget build functions now use a map (this should make them more robust to argument changes in the future)