implemented initial_data