is it generally good practice to declare all functions of the implementation file in the header file? it seems i can get away with not declaring some -(void) or -(id), etc. functions, so i'm assuming it's not mandatory to do so, but should i do this regardless of the app already working properly?