use better yaml parser