still need to clean simmons functions