abstract - into - impl