Split generic code (in lib/) from custom code (in src/)
Finished new composition style