What you’re noticing are semantic and phonetic components.
This script is good for pointing out phonetic components by the way: