Structure changed a little bit, comments added