Edited CObject to have listeners that react to it's states