add efficiency and space_needed