I don't feel I should split that function