added more implementation of proof search