fairly detailed outline