cleaner and more functional make-project