do some refactoring with different plattforms in mind