Added full-test to prevent regressions
Factored out 'compile-source'
Factor out a few things