check for source define
fix spec
implement source