updated, also adds comments.