supports placeholders in attributes