functionality considerations