First pass at labels/legends. Tests don't pass yet.