upgrade to have more meaning
upgrade to have more meaning
extract method without side effect to make it easy to test