add initial multicolour code
Merge branch 'dev' into multicolour
add unit tests for multicolour