switch to #!, lots of stuff changed