we should not do heavy actions in onBeforeShow. suggest to do it in onInit