tweaked for readability; added experimental linux building