Fix for 144 - refactor blocks

any time this is used we need to make a copy of it anyway, e.g. for the app page, for creating new blocks, so i figured we might as well make it a constructor