implement initial. not working