1. IMPORTANT. Write tests which check both the inline and non-inline versions of get/set functions. 2. Need tests for all types, can probably paramterise with macros so that there is just one source file