update abstract, resolve out of bounds issue.