added recursive calculator