added more content, improved code