Adding function type and object validation traversal

Closes #46, #16