PushButton now based on listeners