methods add and constructors