adding Matt's solutions for advanced interactions