update to handle special block sizes