! rule of obj naming: base.ext => base.ext.o
~ reorder arguments