the basics are covered now for mac, can be reused for linux
source control added