So what is a functional requirement anyway?