------ f * *f