generate new instance
add FIXME