linux support! ugly, but works