Get rid of janky promises, use custom eval