Separated header and implementation