Use proper interface rather than class implementaiton