Split into multiple files, use #ifdef