add a __repr__ and a __dir__, refine some stuff

Signed-off-by: Chris “Kwpolska” Warrick <kwpolska@gmail.com>