refactor for ide friendly