add generaator
add tests
add ignore