remember curry will do automatical type inference, so the second part will not need implicit type claimation