public List<Message> page(final int index) {
            if (this.pageSize < 1) {
                if (index != 0) throw new IllegalArgumentException("page index not available: " + index);
                return this.contents;
            }

            final int last = ((index + 1) * this.pageSize) - 1;
            return this.contents.subList(index * this.pageSize, ( last <= this.contents.size() ? last : this.contents.size() ));
        }