Add cal

I don't like this null checking business, see my previous suggestion for a better solution