no need for initial_state method