Split apart compose.js into better chunks as per #594