Separating function declarations and implementatins