Updated to make things more comprehensible