add initial.
add generator.
update tests.