imho this class deserves a little documentation