wrote a bit about the implementation