change method name
no need for this _is_template here
improved constraint functions