What about using interfaces?