updated, added, and improved methods