Fixed previous commit.
Added more tests cases.
Added return typing to functions
Changed syntax from ': type' to 'type'