added linting
got unit tests running
standardised on whitespace rules