Separate declarations and definitions