platform dependent code in separate files