split declarations and definitions