some more documentation. started implementing abstract lib classes