updated with p(size)