Refactored to fly and quack interfaces