update metadata and inline docs
update syntax
make all tests pass, add some new