Хендлеры complete стоит вныосить в отдельные методы. Во первых не будет каждый раз создаваться функция. во торых можно будет гибко переопределить