More refactoring reflecting pull request comments, now installation method is controlled by attibute and package by default. Default recipe is just an iterface calling underlying recipe