More clear implementation