Clean Code and How to Write it