saperate compilation