Added an 'open' method and a before_save hook