my custom stuff
changed for linux compatibility