re-factoring; add github component