Lots of changes for linux