updated project class for more flexible builds