implemented state::create