- abstract code