demonstration how to separate header and implementation