use interface method instead of manual object init