few upgrades and learnt core principle