Add macros for delegating constructors
Add pack
Add tests for pack, and fix some bugs