Add <smt> header and functional tests