pushing latest updates. still work in progress