Added initial linux implementation