Factor out classes
Reorganize scons build scripts