merge upstream, new way of compiling