add iterator
add methods
remove spec