type additions and documentation