boundary handling is fixed