Seperated implementation from the interface
Finally everything compiled