dry code
update docs