components compile