add better comments and a readme