add begin end method for extension  and some overall updates