a lot of changes to improve for ubuntu