works for naive cases