both a chess engine and an example for software architecture documentation