Almost happy with formatting and documentation