finalize without deep refactor