v0.15 more refactoring