it's confusing, specifically operator precidence