Implementing to interfaces! And using factories