implementation and documentation #78