updated with placeholders iteration 2