improve initialise(update) method