change syntax for object construction

before:
    type{args}

after:
    new type{args}
    new type

this is because syntax of object construction conflicts with function
call with {} block when the type is instantiated from class template.

related issue: #15