add + operator and constructor