removing abstract code