added recursive ability
added recursive ability for kaiser
edits