add core functional tests