move call log to be an actual object and add some documenation