don't require capitalized constructor names
fix: needs to be variadic
many tests & some renames