Separated interfaces and implementations for logic project