improv: some refactorisation