merge and adding some philosophy