added linux support. may not work right yet