making improvements based on input from Acey