Refactoring - separated packages to .api and .impl