Added a target.
Added macros and unit tests for them.
Updated deps.
Updated package info.
Renamed files and added more tests.
Updated examples to use new macros.