refactored github component