Entierly recursive