dynamic template path support