rewrite the specifications to reflect the changes in InputListener