adding full type support
adding basic tests

integrated basic tests