Separation of declarations and definitions