this allows to store them in std::vectors, but requires to call the init() method after construction...