see note above, its possible that you'll return a negative value from this function which will cause some issues