Abstract duck factory