complete unittest
add opApply
implements lifegame!