implementation of make; not tested