An introduction to self-build