make code leaner and add docs