size must be a power of two or the indexing doesn't work out
docs++