add functionality checking