Dont use redundant variables
Implement tangent
Implement 'raw' tangent method