saver box implementation

pulled latest master from upstream, merged all changes before submitting pull request