Started work on linux port

Added experimental support for linux