Implement different target types