take into account of all major aspects