rewrote the build system in python + fabricate