functions solutions