I'll keep some template code here to avoid writing it in future