better yaml parser