Refactor allocation to include canaries