Split block-level stuff into own module