more docs..
more factoring..