Recursive place, some refactoring