some changes to how position is handled via int[]