updated and merged