swaped to using boost pointer. maybe slower? check. periodic neighbour
searching works now. but corners still probably don't work. need to
check