Final v3

fixed return types.