Some rework for more flexibility :)