if then else
prepared better core/emitters/