since function body is in head file, declare of non-member functions is not necessary