github fork ribbon
code refactor