make utils.once protect recursive functions

Fix #226