added linux functionality