added some thoughts on the implementation