start refactoring the linux client
more refactoring of linux client