generalized block system to work with (theoretically) infinite amount, updated docs