functionality and non functionality