Added self update mechanism