rearrange a little, add composer support