clean up compile, add SaveBlock