changed into vector pointers and new constructors
no message