Added Type class & annotations, calculate with different data types