Three aspects of cognitive development