Merged for possible further improvements