slightly polished for github