attempt at some kind of documentation