added comments etc