explained design choices