A device for determining movement activities, comprising: an inertial sensor (110, 112), which, in operation, generates inertial sensor data associated with the device; and processing circuitry communicatively coupled to the inertial sensor, wherein the processing circuitry, in operation: determines a new feature array from the inertial sensor data, a feature array being a multi-dimensional array of inertial sensor data characteristic values, wherein a state space is a multi-dimensional area of inertial sensor data characteristics and a class is an area in the state space defined by a group of feature arrays centered around a representative point; determines if the new feature array overlaps or is within a threshold distance from an existing class, within the state space associated with the inertial sensor data; in response to the new feature array overlapping or being within a threshold distance from an existing class, adds the new feature array to the existing class and updates a representation of the existing class in the state space, the representation of the existing class being the representative point of the existing class in the state space, based on the new feature array and an existing representation of the existing class; in response to the new feature array not overlapping or not being within a threshold distance from an existing class, creates a new class based on the new feature array, wherein the processing circuitry, in operation, receives new inertial sensor data and, in response to the new feature array, which is determined from the new inertial sensor data, overlapping or being within a threshold distance from the existing class, instructs the device to perform an action based on the existing class. an inertial sensor (110, 112), which, in operation, generates inertial sensor data associated with the device; and processing circuitry communicatively coupled to the inertial sensor, wherein the processing circuitry, in operation: determines a new feature array from the inertial sensor data, a feature array being a multi-dimensional array of inertial sensor data characteristic values, wherein a state space is a multi-dimensional area of inertial sensor data characteristics and a class is an area in the state space defined by a group of feature arrays centered around a representative point; determines if the new feature array overlaps or is within a threshold distance from an existing class, within the state space associated with the inertial sensor data; in response to the new feature array overlapping or being within a threshold distance from an existing class, adds the new feature array to the existing class and updates a representation of the existing class in the state space, the representation of the existing class being the representative point of the existing class in the state space, based on the new feature array and an existing representation of the existing class; in response to the new feature array not overlapping or not being within a threshold distance from an existing class, creates a new class based on the new feature array, wherein the processing circuitry, in operation, receives new inertial sensor data and, in response to the new feature array, which is determined from the new inertial sensor data, overlapping or being within a threshold distance from the existing class, instructs the device to perform an action based on the existing class. determines a new feature array from the inertial sensor data, a feature array being a multi-dimensional array of inertial sensor data characteristic values, wherein a state space is a multi-dimensional area of inertial sensor data characteristics and a class is an area in the state space defined by a group of feature arrays centered around a representative point; determines if the new feature array overlaps or is within a threshold distance from an existing class, within the state space associated with the inertial sensor data; in response to the new feature array overlapping or being within a threshold distance from an existing class, adds the new feature array to the existing class and updates a representation of the existing class in the state space, the representation of the existing class being the representative point of the existing class in the state space, based on the new feature array and an existing representation of the existing class; in response to the new feature array not overlapping or not being within a threshold distance from an existing class, creates a new class based on the new feature array, wherein the processing circuitry, in operation, receives new inertial sensor data and, in response to the new feature array, which is determined from the new inertial sensor data, overlapping or being within a threshold distance from the existing class, instructs the device to perform an action based on the existing class.