Add engines supports
fixed #8, support spm.engines, and refact codes.
Update package version to 0.3.0