No new feature. Only some refactoring applied.