always use interface rather than field access