attempt at a clear model