Added module documentation and tightened interface