edge cases and add template