Updated to build programmatically